/*!
 * jScrollPane - v2.0.14 - 2013-05-01
 * http://jscrollpane.kelvinluck.com/
 *
 * Copyright (c) 2010 Kelvin Luck
 * Dual licensed under the MIT or GPL licenses.
 */
(function (b, a, c) {
    b.fn.jScrollPane = function (e) {
        function d(D, O) {
            var ay, Q = this, Y, aj, v, al, T, Z, y, q, az, aE, au, i, I, h, j, aa, U, ap, X, t, A, aq, af, am, G, l,
                at, ax, x, av, aH, f, L, ai = true, P = true, aG = false, k = false, ao = D.clone(false, false).empty(),
                ac = b.fn.mwheelIntent ? "mwheelIntent.jsp" : "mousewheel.jsp";
            aH = D.css("paddingTop") + " " + D.css("paddingRight") + " " + D.css("paddingBottom") + " " + D.css("paddingLeft");
            f = (parseInt(D.css("paddingLeft"), 10) || 0) + (parseInt(D.css("paddingRight"), 10) || 0);

            function ar(aQ) {
                var aL, aN, aM, aJ, aI, aP, aO = false, aK = false;
                ay = aQ;
                if (Y === c) {
                    aI = D.scrollTop();
                    aP = D.scrollLeft();
                    D.css({overflow: "hidden", padding: 0});
                    aj = D.innerWidth() + f;
                    v = D.innerHeight();
                    D.width(aj);
                    Y = b('<div class="jspPane" />').css("padding", aH).append(D.children());
                    al = b('<div class="jspContainer" />').css({
                        width: aj + "px",
                        height: v + "px"
                    }).append(Y).appendTo(D)
                } else {
                    D.css("width", "");
                    aO = ay.stickToBottom && K();
                    aK = ay.stickToRight && B();
                    aJ = D.innerWidth() + f != aj || D.outerHeight() != v;
                    if (aJ) {
                        aj = D.innerWidth() + f;
                        v = D.innerHeight();
                        al.css({width: aj + "px", height: v + "px"})
                    }
                    if (!aJ && L == T && Y.outerHeight() == Z) {
                        D.width(aj);
                        return
                    }
                    L = T;
                    Y.css("width", "");
                    D.width(aj);
                    al.find(">.jspVerticalBar,>.jspHorizontalBar").remove().end()
                }
                Y.css("overflow", "auto");
                if (aQ.contentWidth) {
                    T = aQ.contentWidth
                } else {
                    T = Y[0].scrollWidth
                }
                Z = Y[0].scrollHeight;
                Y.css("overflow", "");
                y = T / aj;
                q = Z / v;
                az = q > 1;
                aE = y > 1;
                if (!(aE || az)) {
                    D.removeClass("jspScrollable");
                    Y.css({top: 0, width: al.width() - f});
                    n();
                    E();
                    R();
                    w()
                } else {
                    D.addClass("jspScrollable");
                    aL = ay.maintainPosition && (I || aa);
                    if (aL) {
                        aN = aC();
                        aM = aA()
                    }
                    aF();
                    z();
                    F();
                    if (aL) {
                        N(aK ? (T - aj) : aN, false);
                        M(aO ? (Z - v) : aM, false)
                    }
                    J();
                    ag();
                    an();
                    if (ay.enableKeyboardNavigation) {
                        S()
                    }
                    if (ay.clickOnTrack) {
                        p()
                    }
                    C();
                    if (ay.hijackInternalLinks) {
                        m()
                    }
                }
                if (ay.autoReinitialise && !av) {
                    av = setInterval(function () {
                        ar(ay)
                    }, ay.autoReinitialiseDelay)
                } else {
                    if (!ay.autoReinitialise && av) {
                        clearInterval(av)
                    }
                }
                aI && D.scrollTop(0) && M(aI, false);
                aP && D.scrollLeft(0) && N(aP, false);
                D.trigger("jsp-initialised", [aE || az])
            }

            function aF() {
                if (az) {
                    al.append(b('<div class="jspVerticalBar" />').append(b('<div class="jspCap jspCapTop" />'), b('<div class="jspTrack" />').append(b('<div class="jspDrag" />').append(b('<div class="jspDragTop" />'), b('<div class="jspDragBottom" />'))), b('<div class="jspCap jspCapBottom" />')));
                    U = al.find(">.jspVerticalBar");
                    ap = U.find(">.jspTrack");
                    au = ap.find(">.jspDrag");
                    if (ay.showArrows) {
                        aq = b('<a class="jspArrow jspArrowUp" />').bind("mousedown.jsp", aD(0, -1)).bind("click.jsp", aB);
                        af = b('<a class="jspArrow jspArrowDown" />').bind("mousedown.jsp", aD(0, 1)).bind("click.jsp", aB);
                        if (ay.arrowScrollOnHover) {
                            aq.bind("mouseover.jsp", aD(0, -1, aq));
                            af.bind("mouseover.jsp", aD(0, 1, af))
                        }
                        ak(ap, ay.verticalArrowPositions, aq, af)
                    }
                    t = v;
                    al.find(">.jspVerticalBar>.jspCap:visible,>.jspVerticalBar>.jspArrow").each(function () {
                        t -= b(this).outerHeight()
                    });
                    au.hover(function () {
                        au.addClass("jspHover")
                    }, function () {
                        au.removeClass("jspHover")
                    }).bind("mousedown.jsp", function (aI) {
                        b("html").bind("dragstart.jsp selectstart.jsp", aB);
                        au.addClass("jspActive");
                        var s = aI.pageY - au.position().top;
                        b("html").bind("mousemove.jsp", function (aJ) {
                            V(aJ.pageY - s, false)
                        }).bind("mouseup.jsp mouseleave.jsp", aw);
                        return false
                    });
                    o()
                }
            }

            function o() {
                ap.height(t + "px");
                I = 0;
                X = ay.verticalGutter + ap.outerWidth();
                Y.width(aj - X - f);
                try {
                    if (U.position().left === 0) {
                        Y.css("margin-left", X + "px")
                    }
                } catch (s) {
                }
            }

            function z() {
                if (aE) {
                    al.append(b('<div class="jspHorizontalBar" />').append(b('<div class="jspCap jspCapLeft" />'), b('<div class="jspTrack" />').append(b('<div class="jspDrag" />').append(b('<div class="jspDragLeft" />'), b('<div class="jspDragRight" />'))), b('<div class="jspCap jspCapRight" />')));
                    am = al.find(">.jspHorizontalBar");
                    G = am.find(">.jspTrack");
                    h = G.find(">.jspDrag");
                    if (ay.showArrows) {
                        ax = b('<a class="jspArrow jspArrowLeft" />').bind("mousedown.jsp", aD(-1, 0)).bind("click.jsp", aB);
                        x = b('<a class="jspArrow jspArrowRight" />').bind("mousedown.jsp", aD(1, 0)).bind("click.jsp", aB);
                        if (ay.arrowScrollOnHover) {
                            ax.bind("mouseover.jsp", aD(-1, 0, ax));
                            x.bind("mouseover.jsp", aD(1, 0, x))
                        }
                        ak(G, ay.horizontalArrowPositions, ax, x)
                    }
                    h.hover(function () {
                        h.addClass("jspHover")
                    }, function () {
                        h.removeClass("jspHover")
                    }).bind("mousedown.jsp", function (aI) {
                        b("html").bind("dragstart.jsp selectstart.jsp", aB);
                        h.addClass("jspActive");
                        var s = aI.pageX - h.position().left;
                        b("html").bind("mousemove.jsp", function (aJ) {
                            W(aJ.pageX - s, false)
                        }).bind("mouseup.jsp mouseleave.jsp", aw);
                        return false
                    });
                    l = al.innerWidth();
                    ah()
                }
            }

            function ah() {
                al.find(">.jspHorizontalBar>.jspCap:visible,>.jspHorizontalBar>.jspArrow").each(function () {
                    l -= b(this).outerWidth()
                });
                G.width(l + "px");
                aa = 0
            }

            function F() {
                if (aE && az) {
                    var aI = G.outerHeight(), s = ap.outerWidth();
                    t -= aI;
                    b(am).find(">.jspCap:visible,>.jspArrow").each(function () {
                        l += b(this).outerWidth()
                    });
                    l -= s;
                    v -= s;
                    aj -= aI;
                    G.parent().append(b('<div class="jspCorner" />').css("width", aI + "px"));
                    o();
                    ah()
                }
                if (aE) {
                    Y.width((al.outerWidth() - f) + "px")
                }
                Z = Y.outerHeight();
                q = Z / v;
                if (aE) {
                    at = Math.ceil(1 / y * l);
                    if (at > ay.horizontalDragMaxWidth) {
                        at = ay.horizontalDragMaxWidth
                    } else {
                        if (at < ay.horizontalDragMinWidth) {
                            at = ay.horizontalDragMinWidth
                        }
                    }
                    h.width(at + "px");
                    j = l - at;
                    ae(aa)
                }
                if (az) {
                    A = Math.ceil(1 / q * t);
                    if (A > ay.verticalDragMaxHeight) {
                        A = ay.verticalDragMaxHeight
                    } else {
                        if (A < ay.verticalDragMinHeight) {
                            A = ay.verticalDragMinHeight
                        }
                    }
                    au.height(A + "px");
                    i = t - A;
                    ad(I)
                }
            }

            function ak(aJ, aL, aI, s) {
                var aN = "before", aK = "after", aM;
                if (aL == "os") {
                    aL = /Mac/.test(navigator.platform) ? "after" : "split"
                }
                if (aL == aN) {
                    aK = aL
                } else {
                    if (aL == aK) {
                        aN = aL;
                        aM = aI;
                        aI = s;
                        s = aM
                    }
                }
                aJ[aN](aI)[aK](s)
            }

            function aD(aI, s, aJ) {
                return function () {
                    H(aI, s, this, aJ);
                    this.blur();
                    return false
                }
            }

            function H(aL, aK, aO, aN) {
                aO = b(aO).addClass("jspActive");
                var aM, aJ, aI = true, s = function () {
                    if (aL !== 0) {
                        Q.scrollByX(aL * ay.arrowButtonSpeed)
                    }
                    if (aK !== 0) {
                        Q.scrollByY(aK * ay.arrowButtonSpeed)
                    }
                    aJ = setTimeout(s, aI ? ay.initialDelay : ay.arrowRepeatFreq);
                    aI = false
                };
                s();
                aM = aN ? "mouseout.jsp" : "mouseup.jsp";
                aN = aN || b("html");
                aN.bind(aM, function () {
                    aO.removeClass("jspActive");
                    aJ && clearTimeout(aJ);
                    aJ = null;
                    aN.unbind(aM)
                })
            }

            function p() {
                w();
                if (az) {
                    ap.bind("mousedown.jsp", function (aN) {
                        if (aN.originalTarget === c || aN.originalTarget == aN.currentTarget) {
                            var aL = b(this), aO = aL.offset(), aM = aN.pageY - aO.top - I, aJ, aI = true,
                                s = function () {
                                    var aR = aL.offset(), aS = aN.pageY - aR.top - A / 2, aP = v * ay.scrollPagePercent,
                                        aQ = i * aP / (Z - v);
                                    if (aM < 0) {
                                        if (I - aQ > aS) {
                                            Q.scrollByY(-aP)
                                        } else {
                                            V(aS)
                                        }
                                    } else {
                                        if (aM > 0) {
                                            if (I + aQ < aS) {
                                                Q.scrollByY(aP)
                                            } else {
                                                V(aS)
                                            }
                                        } else {
                                            aK();
                                            return
                                        }
                                    }
                                    aJ = setTimeout(s, aI ? ay.initialDelay : ay.trackClickRepeatFreq);
                                    aI = false
                                }, aK = function () {
                                    aJ && clearTimeout(aJ);
                                    aJ = null;
                                    b(document).unbind("mouseup.jsp", aK)
                                };
                            s();
                            b(document).bind("mouseup.jsp", aK);
                            return false
                        }
                    })
                }
                if (aE) {
                    G.bind("mousedown.jsp", function (aN) {
                        if (aN.originalTarget === c || aN.originalTarget == aN.currentTarget) {
                            var aL = b(this), aO = aL.offset(), aM = aN.pageX - aO.left - aa, aJ, aI = true,
                                s = function () {
                                    var aR = aL.offset(), aS = aN.pageX - aR.left - at / 2,
                                        aP = aj * ay.scrollPagePercent, aQ = j * aP / (T - aj);
                                    if (aM < 0) {
                                        if (aa - aQ > aS) {
                                            Q.scrollByX(-aP)
                                        } else {
                                            W(aS)
                                        }
                                    } else {
                                        if (aM > 0) {
                                            if (aa + aQ < aS) {
                                                Q.scrollByX(aP)
                                            } else {
                                                W(aS)
                                            }
                                        } else {
                                            aK();
                                            return
                                        }
                                    }
                                    aJ = setTimeout(s, aI ? ay.initialDelay : ay.trackClickRepeatFreq);
                                    aI = false
                                }, aK = function () {
                                    aJ && clearTimeout(aJ);
                                    aJ = null;
                                    b(document).unbind("mouseup.jsp", aK)
                                };
                            s();
                            b(document).bind("mouseup.jsp", aK);
                            return false
                        }
                    })
                }
            }

            function w() {
                if (G) {
                    G.unbind("mousedown.jsp")
                }
                if (ap) {
                    ap.unbind("mousedown.jsp")
                }
            }

            function aw() {
                b("html").unbind("dragstart.jsp selectstart.jsp mousemove.jsp mouseup.jsp mouseleave.jsp");
                if (au) {
                    au.removeClass("jspActive")
                }
                if (h) {
                    h.removeClass("jspActive")
                }
            }

            function V(s, aI) {
                if (!az) {
                    return
                }
                if (s < 0) {
                    s = 0
                } else {
                    if (s > i) {
                        s = i
                    }
                }
                if (aI === c) {
                    aI = ay.animateScroll
                }
                if (aI) {
                    Q.animate(au, "top", s, ad)
                } else {
                    au.css("top", s);
                    ad(s)
                }
            }

            function ad(aI) {
                if (aI === c) {
                    aI = au.position().top
                }
                al.scrollTop(0);
                I = aI;
                var aL = I === 0, aJ = I == i, aK = aI / i, s = -aK * (Z - v);
                if (ai != aL || aG != aJ) {
                    ai = aL;
                    aG = aJ;
                    D.trigger("jsp-arrow-change", [ai, aG, P, k])
                }
                u(aL, aJ);
                Y.css("top", s);
                D.trigger("jsp-scroll-y", [-s, aL, aJ]).trigger("scroll")
            }

            function W(aI, s) {
                if (!aE) {
                    return
                }
                if (aI < 0) {
                    aI = 0
                } else {
                    if (aI > j) {
                        aI = j
                    }
                }
                if (s === c) {
                    s = ay.animateScroll
                }
                if (s) {
                    Q.animate(h, "left", aI, ae)
                } else {
                    h.css("left", aI);
                    ae(aI)
                }
            }

            function ae(aI) {
                if (aI === c) {
                    aI = h.position().left
                }
                al.scrollTop(0);
                aa = aI;
                var aL = aa === 0, aK = aa == j, aJ = aI / j, s = -aJ * (T - aj);
                if (P != aL || k != aK) {
                    P = aL;
                    k = aK;
                    D.trigger("jsp-arrow-change", [ai, aG, P, k])
                }
                r(aL, aK);
                Y.css("left", s);
                D.trigger("jsp-scroll-x", [-s, aL, aK]).trigger("scroll")
            }

            function u(aI, s) {
                if (ay.showArrows) {
                    aq[aI ? "addClass" : "removeClass"]("jspDisabled");
                    af[s ? "addClass" : "removeClass"]("jspDisabled")
                }
            }

            function r(aI, s) {
                if (ay.showArrows) {
                    ax[aI ? "addClass" : "removeClass"]("jspDisabled");
                    x[s ? "addClass" : "removeClass"]("jspDisabled")
                }
            }

            function M(s, aI) {
                var aJ = s / (Z - v);
                V(aJ * i, aI)
            }

            function N(aI, s) {
                var aJ = aI / (T - aj);
                W(aJ * j, s)
            }

            function ab(aV, aQ, aJ) {
                var aN, aK, aL, s = 0, aU = 0, aI, aP, aO, aS, aR, aT;
                try {
                    aN = b(aV)
                } catch (aM) {
                    return
                }
                aK = aN.outerHeight();
                aL = aN.outerWidth();
                al.scrollTop(0);
                al.scrollLeft(0);
                while (!aN.is(".jspPane")) {
                    s += aN.position().top;
                    aU += aN.position().left;
                    aN = aN.offsetParent();
                    if (/^body|html$/i.test(aN[0].nodeName)) {
                        return
                    }
                }
                aI = aA();
                aO = aI + v;
                if (s < aI || aQ) {
                    aR = s - ay.verticalGutter
                } else {
                    if (s + aK > aO) {
                        aR = s - v + aK + ay.verticalGutter
                    }
                }
                if (aR) {
                    M(aR, aJ)
                }
                aP = aC();
                aS = aP + aj;
                if (aU < aP || aQ) {
                    aT = aU - ay.horizontalGutter
                } else {
                    if (aU + aL > aS) {
                        aT = aU - aj + aL + ay.horizontalGutter
                    }
                }
                if (aT) {
                    N(aT, aJ)
                }
            }

            function aC() {
                return -Y.position().left
            }

            function aA() {
                return -Y.position().top
            }

            function K() {
                var s = Z - v;
                return (s > 20) && (s - aA() < 10)
            }

            function B() {
                var s = T - aj;
                return (s > 20) && (s - aC() < 10)
            }

            function ag() {
                al.unbind(ac).bind(ac, function (aL, aM, aK, aI) {
                    var aJ = aa, s = I;
                    Q.scrollBy(aK * ay.mouseWheelSpeed, -aI * ay.mouseWheelSpeed, false);
                    return aJ == aa && s == I
                })
            }

            function n() {
                al.unbind(ac)
            }

            function aB() {
                return false
            }

            function J() {
                Y.find(":input,a").unbind("focus.jsp").bind("focus.jsp", function (s) {
                    ab(s.target, false)
                })
            }

            function E() {
                Y.find(":input,a").unbind("focus.jsp")
            }

            function S() {
                var s, aI, aK = [];
                aE && aK.push(am[0]);
                az && aK.push(U[0]);
                Y.focus(function () {
                    D.focus()
                });
                D.attr("tabindex", 0).unbind("keydown.jsp keypress.jsp").bind("keydown.jsp", function (aN) {
                    if (aN.target !== this && !(aK.length && b(aN.target).closest(aK).length)) {
                        return
                    }
                    var aM = aa, aL = I;
                    switch (aN.keyCode) {
                        case 40:
                        case 38:
                        case 34:
                        case 32:
                        case 33:
                        case 39:
                        case 37:
                            s = aN.keyCode;
                            aJ();
                            break;
                        case 35:
                            M(Z - v);
                            s = null;
                            break;
                        case 36:
                            M(0);
                            s = null;
                            break
                    }
                    aI = aN.keyCode == s && aM != aa || aL != I;
                    return !aI
                }).bind("keypress.jsp", function (aL) {
                    if (aL.keyCode == s) {
                        aJ()
                    }
                    return !aI
                });
                if (ay.hideFocus) {
                    D.css("outline", "none");
                    if ("hideFocus" in al[0]) {
                        D.attr("hideFocus", true)
                    }
                } else {
                    D.css("outline", "");
                    if ("hideFocus" in al[0]) {
                        D.attr("hideFocus", false)
                    }
                }

                function aJ() {
                    var aM = aa, aL = I;
                    switch (s) {
                        case 40:
                            Q.scrollByY(ay.keyboardSpeed, false);
                            break;
                        case 38:
                            Q.scrollByY(-ay.keyboardSpeed, false);
                            break;
                        case 34:
                        case 32:
                            Q.scrollByY(v * ay.scrollPagePercent, false);
                            break;
                        case 33:
                            Q.scrollByY(-v * ay.scrollPagePercent, false);
                            break;
                        case 39:
                            Q.scrollByX(ay.keyboardSpeed, false);
                            break;
                        case 37:
                            Q.scrollByX(-ay.keyboardSpeed, false);
                            break
                    }
                    aI = aM != aa || aL != I;
                    return aI
                }
            }

            function R() {
                D.attr("tabindex", "-1").removeAttr("tabindex").unbind("keydown.jsp keypress.jsp")
            }

            function C() {
                if (location.hash && location.hash.length > 1) {
                    var aK, aI, aJ = escape(location.hash.substr(1));
                    try {
                        aK = b("#" + aJ + ', a[name="' + aJ + '"]')
                    } catch (s) {
                        return
                    }
                    if (aK.length && Y.find(aJ)) {
                        if (al.scrollTop() === 0) {
                            aI = setInterval(function () {
                                if (al.scrollTop() > 0) {
                                    ab(aK, true);
                                    b(document).scrollTop(al.position().top);
                                    clearInterval(aI)
                                }
                            }, 50)
                        } else {
                            ab(aK, true);
                            b(document).scrollTop(al.position().top)
                        }
                    }
                }
            }

            function m() {
                if (b(document.body).data("jspHijack")) {
                    return
                }
                b(document.body).data("jspHijack", true);
                b(document.body).delegate("a[href*=#]", "click", function (s) {
                    var aI = this.href.substr(0, this.href.indexOf("#")), aK = location.href, aO, aP, aJ, aM, aL, aN;
                    if (location.href.indexOf("#") !== -1) {
                        aK = location.href.substr(0, location.href.indexOf("#"))
                    }
                    if (aI !== aK) {
                        return
                    }
                    aO = escape(this.href.substr(this.href.indexOf("#") + 1));
                    aP;
                    try {
                        aP = b("#" + aO + ', a[name="' + aO + '"]')
                    } catch (aQ) {
                        return
                    }
                    if (!aP.length) {
                        return
                    }
                    aJ = aP.closest(".jspScrollable");
                    aM = aJ.data("jsp");
                    aM.scrollToElement(aP, true);
                    if (aJ[0].scrollIntoView) {
                        aL = b(a).scrollTop();
                        aN = aP.offset().top;
                        if (aN < aL || aN > aL + b(a).height()) {
                            aJ[0].scrollIntoView()
                        }
                    }
                    s.preventDefault()
                })
            }

            function an() {
                var aJ, aI, aL, aK, aM, s = false;
                al.unbind("touchstart.jsp touchmove.jsp touchend.jsp click.jsp-touchclick").bind("touchstart.jsp", function (aN) {
                    var aO = aN.originalEvent.touches[0];
                    aJ = aC();
                    aI = aA();
                    aL = aO.pageX;
                    aK = aO.pageY;
                    aM = false;
                    s = true
                }).bind("touchmove.jsp", function (aQ) {
                    if (!s) {
                        return
                    }
                    var aP = aQ.originalEvent.touches[0], aO = aa, aN = I;
                    Q.scrollTo(aJ + aL - aP.pageX, aI + aK - aP.pageY);
                    aM = aM || Math.abs(aL - aP.pageX) > 5 || Math.abs(aK - aP.pageY) > 5;
                    return aO == aa && aN == I
                }).bind("touchend.jsp", function (aN) {
                    s = false
                }).bind("click.jsp-touchclick", function (aN) {
                    if (aM) {
                        aM = false;
                        return false
                    }
                })
            }

            function g() {
                var s = aA(), aI = aC();
                D.removeClass("jspScrollable").unbind(".jsp");
                D.replaceWith(ao.append(Y.children()));
                ao.scrollTop(s);
                ao.scrollLeft(aI);
                if (av) {
                    clearInterval(av)
                }
            }

            b.extend(Q, {
                reinitialise: function (aI) {
                    aI = b.extend({}, ay, aI);
                    ar(aI)
                }, scrollToElement: function (aJ, aI, s) {
                    ab(aJ, aI, s)
                }, scrollTo: function (aJ, s, aI) {
                    N(aJ, aI);
                    M(s, aI)
                }, scrollToX: function (aI, s) {
                    N(aI, s)
                }, scrollToY: function (s, aI) {
                    M(s, aI)
                }, scrollToPercentX: function (aI, s) {
                    N(aI * (T - aj), s)
                }, scrollToPercentY: function (aI, s) {
                    M(aI * (Z - v), s)
                }, scrollBy: function (aI, s, aJ) {
                    Q.scrollByX(aI, aJ);
                    Q.scrollByY(s, aJ)
                }, scrollByX: function (s, aJ) {
                    var aI = aC() + Math[s < 0 ? "floor" : "ceil"](s), aK = aI / (T - aj);
                    W(aK * j, aJ)
                }, scrollByY: function (s, aJ) {
                    var aI = aA() + Math[s < 0 ? "floor" : "ceil"](s), aK = aI / (Z - v);
                    V(aK * i, aJ)
                }, positionDragX: function (s, aI) {
                    W(s, aI)
                }, positionDragY: function (aI, s) {
                    V(aI, s)
                }, animate: function (aI, aL, s, aK) {
                    var aJ = {};
                    aJ[aL] = s;
                    aI.animate(aJ, {duration: ay.animateDuration, easing: ay.animateEase, queue: false, step: aK})
                }, getContentPositionX: function () {
                    return aC()
                }, getContentPositionY: function () {
                    return aA()
                }, getContentWidth: function () {
                    return T
                }, getContentHeight: function () {
                    return Z
                }, getPercentScrolledX: function () {
                    return aC() / (T - aj)
                }, getPercentScrolledY: function () {
                    return aA() / (Z - v)
                }, getIsScrollableH: function () {
                    return aE
                }, getIsScrollableV: function () {
                    return az
                }, getContentPane: function () {
                    return Y
                }, scrollToBottom: function (s) {
                    V(i, s)
                }, hijackInternalLinks: b.noop, destroy: function () {
                    g()
                }
            });
            ar(O)
        }

        e = b.extend({}, b.fn.jScrollPane.defaults, e);
        b.each(["arrowButtonSpeed", "trackClickSpeed", "keyboardSpeed"], function () {
            e[this] = e[this] || e.speed
        });
        return this.each(function () {
            var f = b(this), g = f.data("jsp");
            if (g) {
                g.reinitialise(e)
            } else {
                b("script", f).filter('[type="text/javascript"],:not([type])').remove();
                g = new d(f, e);
                f.data("jsp", g)
            }
        })
    };
    b.fn.jScrollPane.defaults = {
        showArrows: false,
        maintainPosition: true,
        stickToBottom: false,
        stickToRight: false,
        clickOnTrack: true,
        autoReinitialise: false,
        autoReinitialiseDelay: 500,
        verticalDragMinHeight: 0,
        verticalDragMaxHeight: 99999,
        horizontalDragMinWidth: 0,
        horizontalDragMaxWidth: 99999,
        contentWidth: c,
        animateScroll: false,
        animateDuration: 300,
        animateEase: "linear",
        hijackInternalLinks: false,
        verticalGutter: 4,
        horizontalGutter: 4,
        mouseWheelSpeed: 3,
        arrowButtonSpeed: 0,
        arrowRepeatFreq: 50,
        arrowScrollOnHover: false,
        trackClickSpeed: 0,
        trackClickRepeatFreq: 70,
        verticalArrowPositions: "split",
        horizontalArrowPositions: "split",
        enableKeyboardNavigation: true,
        hideFocus: false,
        keyboardSpeed: 0,
        initialDelay: 300,
        speed: 30,
        scrollPagePercent: 0.8
    }
})(jQuery, this);


/*! Copyright (c) 2013 Brandon Aaron (http://brandonaaron.net)
 * Licensed under the MIT License (LICENSE.txt).
 *
 * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
 * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
 * Thanks to: Seamus Leahy for adding deltaX and deltaY
 *
 * Version: 3.1.3
 *
 * Requires: 1.2.2+
 */

(function (factory) {
    if (typeof define === 'function' && define.amd) {
        // AMD. Register as an anonymous module.
        define(['jquery'], factory);
    } else if (typeof exports === 'object') {
        // Node/CommonJS style for Browserify
        module.exports = factory;
    } else {
        // Browser globals
        factory(jQuery);
    }
}(function ($) {

    var toFix = ['wheel', 'mousewheel', 'DOMMouseScroll', 'MozMousePixelScroll'];
    var toBind = 'onwheel' in document || document.documentMode >= 9 ? ['wheel'] : ['mousewheel', 'DomMouseScroll', 'MozMousePixelScroll'];
    var lowestDelta, lowestDeltaXY;

    if ($.event.fixHooks) {
        for (var i = toFix.length; i;) {
            $.event.fixHooks[toFix[--i]] = $.event.mouseHooks;
        }
    }

    $.event.special.mousewheel = {
        setup: function () {
            if (this.addEventListener) {
                for (var i = toBind.length; i;) {
                    this.addEventListener(toBind[--i], handler, false);
                }
            } else {
                this.onmousewheel = handler;
            }
        },

        teardown: function () {
            if (this.removeEventListener) {
                for (var i = toBind.length; i;) {
                    this.removeEventListener(toBind[--i], handler, false);
                }
            } else {
                this.onmousewheel = null;
            }
        }
    };

    $.fn.extend({
        mousewheel: function (fn) {
            return fn ? this.bind("mousewheel", fn) : this.trigger("mousewheel");
        },

        unmousewheel: function (fn) {
            return this.unbind("mousewheel", fn);
        }
    });


    function handler(event) {
        var orgEvent = event || window.event,
            args = [].slice.call(arguments, 1),
            delta = 0,
            deltaX = 0,
            deltaY = 0,
            absDelta = 0,
            absDeltaXY = 0,
            fn;
        event = $.event.fix(orgEvent);
        event.type = "mousewheel";

        // Old school scrollwheel delta
        if (orgEvent.wheelDelta) {
            delta = orgEvent.wheelDelta;
        }
        if (orgEvent.detail) {
            delta = orgEvent.detail * -1;
        }

        // New school wheel delta (wheel event)
        if (orgEvent.deltaY) {
            deltaY = orgEvent.deltaY * -1;
            delta = deltaY;
        }
        if (orgEvent.deltaX) {
            deltaX = orgEvent.deltaX;
            delta = deltaX * -1;
        }

        // Webkit
        if (orgEvent.wheelDeltaY !== undefined) {
            deltaY = orgEvent.wheelDeltaY;
        }
        if (orgEvent.wheelDeltaX !== undefined) {
            deltaX = orgEvent.wheelDeltaX * -1;
        }

        // Look for lowest delta to normalize the delta values
        absDelta = Math.abs(delta);
        if (!lowestDelta || absDelta < lowestDelta) {
            lowestDelta = absDelta;
        }
        absDeltaXY = Math.max(Math.abs(deltaY), Math.abs(deltaX));
        if (!lowestDeltaXY || absDeltaXY < lowestDeltaXY) {
            lowestDeltaXY = absDeltaXY;
        }

        // Get a whole value for the deltas
        fn = delta > 0 ? 'floor' : 'ceil';
        delta = Math[fn](delta / lowestDelta);
        deltaX = Math[fn](deltaX / lowestDeltaXY);
        deltaY = Math[fn](deltaY / lowestDeltaXY);

        // Add event and delta to the front of the arguments
        args.unshift(event, delta, deltaX, deltaY);

        return ($.event.dispatch || $.event.handle).apply(this, args);
    }

}));


/******************************
 -    THE PREVIEW JS FUNCTIONS    -
 ********************************/

jQuery(document).ready(function () {

    /******************************
     -    SUB MENU SCROLLER    -
     ********************************/
    jQuery('a.menubutton').each(function () {
        var but = jQuery(this);

        but.click(function () {
            var but = jQuery(this);
            var sto = but.data('where');

            if (sto && sto != undefined && jQuery(sto)) {
                var pos = jQuery(sto).offset().top - 40;
                jQuery('body, html').animate({scrollTop: pos}, {queue: false, duration: 400});
                return false;
            }
        });
    })


    // HIDE JS IF WE ARE ON MOBILE
    if (!is_mobile()) {
        jQuery('.transition-selectbox').jScrollPane({});
        var naviapi = jQuery('.transition-selectbox').data('jsp');
    } else {
        jQuery('.transition-selectbox').css({'overflow': 'scroll'});
    }

    // THE TRANSITION SELECTOR

    jQuery('#transitselector').click(function () {
        var ts = jQuery('.transition-selectbox-holder');
        if (!ts.hasClass("opened")) {
            TweenLite.fromTo(ts, 0.2, {
                opacity: 0,
                transformOrigin: "center bottom",
                transformPerspective: 400,
                y: -50,
                rotationX: 0,
                z: 0
            }, {opacity: 1, y: 0, rotationX: 0, ease: Power3.easeOut})
            ts.css({display: 'block'});
            setTimeout(function () {
                naviapi.reinitialise();
            }, 100)
            ts.addClass("opened");
        }
    })

    jQuery('body').on('mouseleave', '.transition-selectbox-holder.opened', function () {

        var ts = jQuery('.transition-selectbox-holder');
        TweenLite.to(ts, 0.2, {
            opacity: 0,
            transformOrigin: "center bottom",
            transformPerspective: 400,
            y: -50,
            rotationX: 0,
            z: 0,
            ease: Power3.easeOut
        });
        ts.removeClass("opened");
    });


    jQuery('.transition-selectbox li').each(function () {
        var li = jQuery(this);
        li.click(function () {
            var li = jQuery(this);
            var anim = li.data('anim');

            jQuery('#mranim').text(li.text());
            jQuery('#mranim').data('val', anim);

            callChanger();

        })
    })

    /******************************
     -    TIMER CHANGER    -
     ********************************/

    jQuery('#dectime').click(function () {
        var mrtime = jQuery('#mrtime');
        var curtime = mrtime.data('val');
        curtime = curtime - 100;
        if (curtime < 300) curtime = 300;
        mrtime.data('val', curtime);
        mrtime.text('Time: ' + curtime / 1000 + "s");

        callChanger();
    })

    jQuery('#inctime').click(function () {
        var mrtime = jQuery('#mrtime');
        var curtime = mrtime.data('val');
        curtime = curtime + 100;
        mrtime.data('val', curtime);
        mrtime.text('Time: ' + curtime / 1000 + "s");

        callChanger();
    })


    /******************************
     -    SLOT CHANGER    -
     ********************************/
    jQuery('#decslot').click(function () {
        var mrslot = jQuery('#mrslot');
        var slot = mrslot.data('val');
        slot = slot - 1;
        if (slot < 1) slot = 1;
        mrslot.data('val', slot);
        mrslot.text('Slots: ' + slot);

        callChanger();
    })

    jQuery('#incslot').click(function () {
        var mrslot = jQuery('#mrslot');
        var slot = mrslot.data('val');
        slot = slot + 1;
        if (slot > 20) slot = 20;
        mrslot.data('val', slot);
        mrslot.text('Slots: ' + slot);

        callChanger();
    })

    var timeoutv;

    function callChanger() {
        clearTimeout(timeoutv);
        timeoutv = setTimeout(function () {

            var anim = jQuery('#mranim').data('val');
            var timer = jQuery('#mrtime').data('val');
            var slot = jQuery('#mrslot').data('val');

            jQuery('.spectaculus ul li').each(function () {
                jQuery(this).data("transition", anim);
                jQuery(this).data("slotamount", slot);
                jQuery(this).data("masterspeed", timer);
            })

            jQuery('#resultanim').text(anim);
            jQuery('#resultslot').text(slot);
            jQuery('#resultspeed').text(timer);
            revapi.revnext();
        }, 300);

    }

    /***************************************
     -    START THE ANIMATION CREATOR    -
     ***************************************/

    prepareAnimateCreator();

    jQuery('#set-random-animation').click(function () {
        jQuery('input[name="movex"]').val((Math.floor(Math.random() * 101) - 50) * 10);
        jQuery('input[name="movey"]').val((Math.floor(Math.random() * 101) - 50) * 10);
        jQuery('input[name="movez"]').val((Math.floor(Math.random() * 11) - 5) * 10);

        jQuery('input[name="rotationx"]').val((Math.floor(Math.random() * 101) - 50) * 10);
        jQuery('input[name="rotationy"]').val((Math.floor(Math.random() * 101) - 50) * 10);
        jQuery('input[name="rotationz"]').val((Math.floor(Math.random() * 101) - 50) * 10);

        jQuery('input[name="scalex"]').val((Math.floor(Math.random() * 31)) * 10);
        jQuery('input[name="scaley"]').val((Math.floor(Math.random() * 31)) * 10);

        jQuery('input[name="skewx"]').val(Math.floor(Math.random() * 61));
        jQuery('input[name="skewy"]').val(Math.floor(Math.random() * 61));

        jQuery('input[name="captionopacity"]').val(0);
        jQuery('input[name="captionperspective"]').val(600);

        jQuery('input[name="originx"]').val((Math.floor(Math.random() * 41) - 20) * 10);
        jQuery('input[name="originy"]').val((Math.floor(Math.random() * 41) - 20) * 10);


        jQuery('input[name="captionspeed"]').val((Math.floor(Math.random() * 11) + 5) * 100);

        transition = jQuery('#caption-easing-demo option');
        var random = Math.floor(transition.length * (Math.random() % 1));

        transition.attr('selected', false).eq(random).attr('selected', true);


        jQuery('input[name="movexout"]').val((Math.floor(Math.random() * 101) - 50) * 10);
        jQuery('input[name="moveyout"]').val((Math.floor(Math.random() * 101) - 50) * 10);
        jQuery('input[name="movezout"]').val((Math.floor(Math.random() * 11) - 5) * 10);

        jQuery('input[name="rotationxout"]').val((Math.floor(Math.random() * 101) - 50) * 10);
        jQuery('input[name="rotationyout"]').val((Math.floor(Math.random() * 101) - 50) * 10);
        jQuery('input[name="rotationzout"]').val((Math.floor(Math.random() * 101) - 50) * 10);

        jQuery('input[name="scalexout"]').val((Math.floor(Math.random() * 31)) * 10);
        jQuery('input[name="scaleyout"]').val((Math.floor(Math.random() * 31)) * 10);

        jQuery('input[name="skewxout"]').val(Math.floor(Math.random() * 61));
        jQuery('input[name="skewyout"]').val(Math.floor(Math.random() * 61));

        jQuery('input[name="captionopacityout"]').val(0);
        jQuery('input[name="captionperspectiveout"]').val(600);

        jQuery('input[name="originxout"]').val((Math.floor(Math.random() * 41) - 20) * 10);
        jQuery('input[name="originyout"]').val((Math.floor(Math.random() * 41) - 20) * 10);


        jQuery('input[name="captionspeedout"]').val((Math.floor(Math.random() * 11) + 5) * 100);

        transition = jQuery('#caption-easing-demoout option');
        var random = Math.floor(transition.length * (Math.random() % 1));

        transition.attr('selected', false).eq(random).attr('selected', true);

    });


});


//////////////////
// IS MOBILE ?? //
//////////////////
function is_mobile() {
    var agents = ['android', 'webos', 'iphone', 'ipad', 'blackberry', 'Android', 'webos', , 'iPod', 'iPhone', 'iPad', 'Blackberry', 'BlackBerry'];
    var ismobile = false;
    for (i in agents) {

        if (navigator.userAgent.split(agents[i]).length > 1) {
            ismobile = true;

        }
    }
    return ismobile;
}


/******************************
 -    ANIMATION CREATOR    -
 ********************************/

function prepareAnimateCreator() {
    var cic = jQuery('#caption-inout-controll');
    cic.data('direction', 0);

    var osw = jQuery('#outanimation .settings_wrapper');
    osw.slideUp(200).addClass("collapsed");
    var isw = jQuery('#inanimation .settings_wrapper');

    jQuery('#outanimation .caption-demo-controll').click(function () {

        if (osw.hasClass("collapsed")) {
            osw.removeClass("collapsed").slideDown(200);
            isw.slideUp(200).addClass("collapsed");
        } else {
            osw.slideUp(200).addClass("collapsed");
            isw.removeClass("collapsed").slideDown(200);
        }
    });

    jQuery('#inanimation .caption-demo-controll').click(function () {

        if (isw.hasClass("collapsed")) {
            isw.removeClass("collapsed").slideDown(200);
            osw.slideUp(200).addClass("collapsed");
        } else {
            isw.slideUp(200).addClass("collapsed");
            osw.removeClass("collapsed").slideDown(200);
        }
    });


    jQuery('#caption-inout-controll').click(function () {
        if (cic.data('direction') == 0) {
            cic.data('direction', 1);
            jQuery('#revshowmetheinanim').removeClass("reviconinaction");
            jQuery('#revshowmetheoutanim').addClass("reviconinaction");
        } else if (cic.data('direction') == 1) {
            cic.data('direction', 2);
            jQuery('#revshowmetheinanim').addClass("reviconinaction");
            jQuery('#revshowmetheoutanim').addClass("reviconinaction");

        } else if (cic.data('direction') == 2) {
            cic.data('direction', 0);
            jQuery('#revshowmetheinanim').addClass("reviconinaction");
            jQuery('#revshowmetheoutanim').removeClass("reviconinaction");

        }
    });
    startAnimationInCreator();

}

function startAnimationInCreator() {
    stopAnimationInPreview();
    animateCreatorIn();
}

function killAnimationInCreator() {
    var nextcaption = jQuery('#caption_custon_anim_preview');
    TweenLite.killTweensOf(nextcaption, false);
}

function animateCreatorIn() {


    var nextcaption = jQuery('#caption_custon_anim_preview');
    var cic = jQuery('#caption-inout-controll');

    var transx = jQuery('input[name="movex"]').val();
    var transy = jQuery('input[name="movey"]').val();
    var transz = jQuery('input[name="movez"]').val();

    var rotatex = jQuery('input[name="rotationx"]').val();
    var rotatey = jQuery('input[name="rotationy"]').val();
    var rotatez = jQuery('input[name="rotationz"]').val();

    var scalex = jQuery('input[name="scalex"]').val() / 100;
    var scaley = jQuery('input[name="scaley"]').val() / 100;

    var skewx = jQuery('input[name="skewx"]').val();
    var skewy = jQuery('input[name="skewy"]').val();
    var opac = jQuery('input[name="captionopacity"]').val() / 100;

    var tper = jQuery('input[name="captionperspective"]').val();
    //var tper = 600;

    var originx = jQuery('input[name="originx"]').val() + "%";
    var originy = jQuery('input[name="originy"]').val() + "%";
    var origin = originx + " " + originy;

    var speed = parseInt(jQuery('input[name="captionspeed"]').val(), 0);
    if (speed < 100) speed = 100;

    var easedata = jQuery('#caption-easing-demo').val();


    jQuery('#custominresult').text("x:" + transx + ";y:" + transy + ";z:" + transz + ";" +
        "rotationX:" + rotatex + ";rotationY:" + rotatey + ";rotationZ:" + rotatez + ";" +
        "scaleX:" + scalex + ";scaleY:" + scaley + ";" +
        "skewX:" + skewx + ";skewY:" + skewy + ";" +
        "opacity:" + opac + ";" +
        "transformPerspective:" + tper + ";transformOrigin:" + origin + ";");

    jQuery('#custominspeed').text(speed);
    jQuery('#custominease').text(easedata);
    jQuery('#presplitin').text(jQuery('#caption-splitin-demo').val());
    jQuery('#presplitout').text(jQuery('#caption-splitout-demo').val());
    jQuery('#predelayin').text(jQuery('input[name="splitspeedin"]').val() / 1000);
    jQuery('#predleayout').text(jQuery('input[name="splitspeedout"]').val() / 1000);


    speed = speed / 1000;
    var xx = jQuery('.tp-present-wrapper').width() / 2 - 72;
    var yy = jQuery('.tp-present-wrapper').height() / 2 - 17;

    if (nextcaption.data('mySplitText') != undefined)
        nextcaption.data('mySplitText').revert();

    nextcaption.data('splitin', jQuery('#caption-splitin-demo').val());
    var animobject = nextcaption;
    var splitspeed = 0;
    var delayer = 1;

    if (nextcaption.data('splitin') == "chars" || nextcaption.data('splitin') == "words" || nextcaption.data('splitin') == "lines") {
        if (nextcaption.find('a').length > 0)
            nextcaption.data('mySplitText', new SplitText(nextcaption.find('a'), {
                type: "lines,words,chars",
                charsClass: "tp-splitted",
                wordsClass: "tp-splitted",
                linesClass: "tp-splitted"
            }));
        else
            nextcaption.data('mySplitText', new SplitText(nextcaption, {
                type: "lines,words,chars",
                charsClass: "tp-splitted",
                wordsClass: "tp-splitted",
                linesClass: "tp-splitted"
            }));

        nextcaption.addClass("splitted");
        splitspeed = jQuery('input[name="splitspeedin"]').val() / 1000;
    }

    if (nextcaption.data('splitin') == "chars") {

        animobject = nextcaption.data('mySplitText').chars;
        delayer = animobject.length;
    }


    if (nextcaption.data('splitin') == "words") {
        animobject = nextcaption.data('mySplitText').words;
        delayer = animobject.length;
    }


    if (nextcaption.data('splitin') == "lines") {
        animobject = nextcaption.data('mySplitText').lines;
        delayer = animobject.length;
    }


    TweenLite.fromTo(nextcaption, speed, {top: yy, left: xx, opacity: opac}, {top: yy, left: xx, opacity: 1});

    var newtl = new TimelineLite();

    TweenLite.killTweensOf(animobject, false);
    newtl.staggerFromTo(animobject, speed,
        {
            scaleX: scalex,
            scaleY: scaley,
            rotationX: rotatex,
            rotationY: rotatey,
            rotationZ: rotatez,
            x: transx,
            y: transy,
            z: transz + 1,
            skewX: skewx,
            skewY: skewy,


            transformPerspective: tper,
            transformOrigin: origin,
            visibility: 'hidden'
        },

        {

            x: 0,
            y: 0,
            scaleX: 1,
            scaleY: 1,
            rotationX: 0,
            rotationY: 0,
            rotationZ: 0,
            skewX: 0,
            skewY: 0,
            z: 1,
            visibility: 'visible',
            opacity: 1,
            ease: easedata,
            overwrite: "all"
        }, splitspeed);


    setTimeout(function () {
        animateCreatorOut()
    }, (splitspeed / 1000 * delayer) + (speed * 1000) + 500);
}


function animateCreatorOut() {


    var nextcaption = jQuery('#caption_custon_anim_preview');
    var cic = jQuery('#caption-inout-controll');

    var transx = jQuery('input[name="movexout"]').val();
    var transy = jQuery('input[name="moveyout"]').val();
    var transz = jQuery('input[name="movezout"]').val();

    var rotatex = jQuery('input[name="rotationxout"]').val();
    var rotatey = jQuery('input[name="rotationyout"]').val();
    var rotatez = jQuery('input[name="rotationzout"]').val();

    var scalex = jQuery('input[name="scalexout"]').val() / 100;
    var scaley = jQuery('input[name="scaleyout"]').val() / 100;

    var skewx = jQuery('input[name="skewxout"]').val();
    var skewy = jQuery('input[name="skewyout"]').val();
    var opac = jQuery('input[name="captionopacityout"]').val() / 100;

    var tper = jQuery('input[name="captionperspectiveout"]').val();
    //var tper = 600;

    var originx = jQuery('input[name="originxout"]').val() + "%";
    var originy = jQuery('input[name="originyout"]').val() + "%";
    var origin = originx + " " + originy;

    var speed = parseInt(jQuery('input[name="captionspeedout"]').val(), 0);
    if (speed < 100) speed = 100;

    var easedata = jQuery('#caption-easing-demoout').val();


    jQuery('#customoutresult').text("x:" + transx + ";y:" + transy + ";z:" + transz + ";" +
        "rotationX:" + rotatex + ";rotationY:" + rotatey + ";rotationZ:" + rotatez + ";" +
        "scaleX:" + scalex + ";scaleY:" + scaley + ";" +
        "skewX:" + skewx + ";skewY:" + skewy + ";" +
        "opacity:" + opac + ";" +
        "transformPerspective:" + tper + ";transformOrigin:" + origin + ";");

    jQuery('#customoutspeed').text(speed);
    jQuery('#customoutease').text(easedata);

    jQuery('#presplitin').text(jQuery('#caption-splitin-demo').val());
    jQuery('#presplitout').text(jQuery('#caption-splitout-demo').val());
    jQuery('#predelayin').text(jQuery('input[name="splitspeedin"]').val() / 1000);
    jQuery('#predleayout').text(jQuery('input[name="splitspeedout"]').val() / 1000);

    speed = speed / 1000;
    var xx = jQuery('.tp-present-wrapper').width() / 2 - 72;
    var yy = jQuery('.tp-present-wrapper').height() / 2 - 17;

    if (nextcaption.data('mySplitText') != undefined)
        nextcaption.data('mySplitText').revert();

    nextcaption.data('splitout', jQuery('#caption-splitout-demo').val());


    var animobject = nextcaption;
    var splitspeed = 0;
    var delayer = 1;

    if (nextcaption.data('splitout') == "chars" || nextcaption.data('splitout') == "words" || nextcaption.data('splitout') == "lines") {
        if (nextcaption.find('a').length > 0)
            nextcaption.data('mySplitText', new SplitText(nextcaption.find('a'), {
                type: "lines,words,chars",
                charsClass: "tp-splitted",
                wordsClass: "tp-splitted",
                linesClass: "tp-splitted"
            }));
        else
            nextcaption.data('mySplitText', new SplitText(nextcaption, {
                type: "lines,words,chars",
                charsClass: "tp-splitted",
                wordsClass: "tp-splitted",
                linesClass: "tp-splitted"
            }));

        nextcaption.addClass("splitted");
        splitspeed = jQuery('input[name="splitspeedout"]').val() / 1000;
    }

    if (nextcaption.data('splitout') == "chars") {


        animobject = nextcaption.data('mySplitText').chars;
        delayer = animobject.length;
    }


    if (nextcaption.data('splitout') == "words") {
        animobject = nextcaption.data('mySplitText').words;
        delayer = animobject.length;
    }


    if (nextcaption.data('splitout') == "lines") {
        animobject = nextcaption.data('mySplitText').lines;
        delayer = animobject.length;
    }

    if (nextcaption == animobject)
        TweenLite.fromTo(nextcaption, speed, {top: yy, left: xx, opacity: 1}, {top: yy, left: xx, opacity: opac});
    else {
        TweenLite.set(nextcaption, {top: yy, left: xx, opacity: 1});
        setTimeout(function () {
            TweenLite.fromTo(nextcaption, 0.3, {top: yy, left: xx, opacity: 1}, {top: yy, left: xx, opacity: opac});
        }, (splitspeed * 1000 * delayer) + (speed * 1000));
    }

    var newtl = new TimelineLite();

    TweenLite.killTweensOf(animobject, false);
    newtl.staggerFromTo(animobject, speed,
        {
            x: 0,
            y: 0,
            scaleX: 1,
            scaleY: 1,
            rotationX: 0,
            rotationY: 0,
            rotationZ: 0,
            skewX: 0,
            skewY: 0,
            z: 1,
            visibility: 'visible',
            opacity: 1
        },

        {

            scaleX: scalex,
            scaleY: scaley,
            rotationX: rotatex,
            rotationY: rotatey,
            rotationZ: rotatez,
            x: transx,
            y: transy,
            z: transz + 1,
            skewX: skewx,
            skewY: skewy,
            left: xx,
            top: yy,

            transformPerspective: tper,
            transformOrigin: origin,
            ease: easedata,
            overwrite: "all",
            delay: 0.3,
            opacity: opac
        }, splitspeed);

    setTimeout(function () {
        animateCreatorIn()
    }, (splitspeed * 1000 * delayer) + (speed * 1000) + 500);

}


/******************************
 -    PLAY IN ANIMATION    -
 ********************************/

function stopAnimationInPreview() {
    var nextcaption = jQuery('#preview_caption_animateme');
    TweenLite.killTweensOf(nextcaption, false);
    if (nextcaption.data("timer")) clearTimeout(nextcaption.data('timer'));
    if (nextcaption.data("timera")) clearTimeout(nextcaption.data('timera'));
}

